package org.pangu.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ProductExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ProductExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andProductDeptIdIsNull() {
            addCriterion("product_dept_id is null");
            return (Criteria) this;
        }

        public Criteria andProductDeptIdIsNotNull() {
            addCriterion("product_dept_id is not null");
            return (Criteria) this;
        }

        public Criteria andProductDeptIdEqualTo(Integer value) {
            addCriterion("product_dept_id =", value, "productDeptId");
            return (Criteria) this;
        }

        public Criteria andProductDeptIdNotEqualTo(Integer value) {
            addCriterion("product_dept_id <>", value, "productDeptId");
            return (Criteria) this;
        }

        public Criteria andProductDeptIdGreaterThan(Integer value) {
            addCriterion("product_dept_id >", value, "productDeptId");
            return (Criteria) this;
        }

        public Criteria andProductDeptIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("product_dept_id >=", value, "productDeptId");
            return (Criteria) this;
        }

        public Criteria andProductDeptIdLessThan(Integer value) {
            addCriterion("product_dept_id <", value, "productDeptId");
            return (Criteria) this;
        }

        public Criteria andProductDeptIdLessThanOrEqualTo(Integer value) {
            addCriterion("product_dept_id <=", value, "productDeptId");
            return (Criteria) this;
        }

        public Criteria andProductDeptIdIn(List<Integer> values) {
            addCriterion("product_dept_id in", values, "productDeptId");
            return (Criteria) this;
        }

        public Criteria andProductDeptIdNotIn(List<Integer> values) {
            addCriterion("product_dept_id not in", values, "productDeptId");
            return (Criteria) this;
        }

        public Criteria andProductDeptIdBetween(Integer value1, Integer value2) {
            addCriterion("product_dept_id between", value1, value2, "productDeptId");
            return (Criteria) this;
        }

        public Criteria andProductDeptIdNotBetween(Integer value1, Integer value2) {
            addCriterion("product_dept_id not between", value1, value2, "productDeptId");
            return (Criteria) this;
        }

        public Criteria andProductNameIsNull() {
            addCriterion("product_name is null");
            return (Criteria) this;
        }

        public Criteria andProductNameIsNotNull() {
            addCriterion("product_name is not null");
            return (Criteria) this;
        }

        public Criteria andProductNameEqualTo(String value) {
            addCriterion("product_name =", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotEqualTo(String value) {
            addCriterion("product_name <>", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameGreaterThan(String value) {
            addCriterion("product_name >", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameGreaterThanOrEqualTo(String value) {
            addCriterion("product_name >=", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLessThan(String value) {
            addCriterion("product_name <", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLessThanOrEqualTo(String value) {
            addCriterion("product_name <=", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameLike(String value) {
            addCriterion("product_name like", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotLike(String value) {
            addCriterion("product_name not like", value, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameIn(List<String> values) {
            addCriterion("product_name in", values, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotIn(List<String> values) {
            addCriterion("product_name not in", values, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameBetween(String value1, String value2) {
            addCriterion("product_name between", value1, value2, "productName");
            return (Criteria) this;
        }

        public Criteria andProductNameNotBetween(String value1, String value2) {
            addCriterion("product_name not between", value1, value2, "productName");
            return (Criteria) this;
        }

        public Criteria andProductAliasIsNull() {
            addCriterion("product_alias is null");
            return (Criteria) this;
        }

        public Criteria andProductAliasIsNotNull() {
            addCriterion("product_alias is not null");
            return (Criteria) this;
        }

        public Criteria andProductAliasEqualTo(String value) {
            addCriterion("product_alias =", value, "productAlias");
            return (Criteria) this;
        }

        public Criteria andProductAliasNotEqualTo(String value) {
            addCriterion("product_alias <>", value, "productAlias");
            return (Criteria) this;
        }

        public Criteria andProductAliasGreaterThan(String value) {
            addCriterion("product_alias >", value, "productAlias");
            return (Criteria) this;
        }

        public Criteria andProductAliasGreaterThanOrEqualTo(String value) {
            addCriterion("product_alias >=", value, "productAlias");
            return (Criteria) this;
        }

        public Criteria andProductAliasLessThan(String value) {
            addCriterion("product_alias <", value, "productAlias");
            return (Criteria) this;
        }

        public Criteria andProductAliasLessThanOrEqualTo(String value) {
            addCriterion("product_alias <=", value, "productAlias");
            return (Criteria) this;
        }

        public Criteria andProductAliasLike(String value) {
            addCriterion("product_alias like", value, "productAlias");
            return (Criteria) this;
        }

        public Criteria andProductAliasNotLike(String value) {
            addCriterion("product_alias not like", value, "productAlias");
            return (Criteria) this;
        }

        public Criteria andProductAliasIn(List<String> values) {
            addCriterion("product_alias in", values, "productAlias");
            return (Criteria) this;
        }

        public Criteria andProductAliasNotIn(List<String> values) {
            addCriterion("product_alias not in", values, "productAlias");
            return (Criteria) this;
        }

        public Criteria andProductAliasBetween(String value1, String value2) {
            addCriterion("product_alias between", value1, value2, "productAlias");
            return (Criteria) this;
        }

        public Criteria andProductAliasNotBetween(String value1, String value2) {
            addCriterion("product_alias not between", value1, value2, "productAlias");
            return (Criteria) this;
        }

        public Criteria andProductStatusIsNull() {
            addCriterion("product_status is null");
            return (Criteria) this;
        }

        public Criteria andProductStatusIsNotNull() {
            addCriterion("product_status is not null");
            return (Criteria) this;
        }

        public Criteria andProductStatusEqualTo(Byte value) {
            addCriterion("product_status =", value, "productStatus");
            return (Criteria) this;
        }

        public Criteria andProductStatusNotEqualTo(Byte value) {
            addCriterion("product_status <>", value, "productStatus");
            return (Criteria) this;
        }

        public Criteria andProductStatusGreaterThan(Byte value) {
            addCriterion("product_status >", value, "productStatus");
            return (Criteria) this;
        }

        public Criteria andProductStatusGreaterThanOrEqualTo(Byte value) {
            addCriterion("product_status >=", value, "productStatus");
            return (Criteria) this;
        }

        public Criteria andProductStatusLessThan(Byte value) {
            addCriterion("product_status <", value, "productStatus");
            return (Criteria) this;
        }

        public Criteria andProductStatusLessThanOrEqualTo(Byte value) {
            addCriterion("product_status <=", value, "productStatus");
            return (Criteria) this;
        }

        public Criteria andProductStatusIn(List<Byte> values) {
            addCriterion("product_status in", values, "productStatus");
            return (Criteria) this;
        }

        public Criteria andProductStatusNotIn(List<Byte> values) {
            addCriterion("product_status not in", values, "productStatus");
            return (Criteria) this;
        }

        public Criteria andProductStatusBetween(Byte value1, Byte value2) {
            addCriterion("product_status between", value1, value2, "productStatus");
            return (Criteria) this;
        }

        public Criteria andProductStatusNotBetween(Byte value1, Byte value2) {
            addCriterion("product_status not between", value1, value2, "productStatus");
            return (Criteria) this;
        }

        public Criteria andCreatedIdIsNull() {
            addCriterion("created_id is null");
            return (Criteria) this;
        }

        public Criteria andCreatedIdIsNotNull() {
            addCriterion("created_id is not null");
            return (Criteria) this;
        }

        public Criteria andCreatedIdEqualTo(Integer value) {
            addCriterion("created_id =", value, "createdId");
            return (Criteria) this;
        }

        public Criteria andCreatedIdNotEqualTo(Integer value) {
            addCriterion("created_id <>", value, "createdId");
            return (Criteria) this;
        }

        public Criteria andCreatedIdGreaterThan(Integer value) {
            addCriterion("created_id >", value, "createdId");
            return (Criteria) this;
        }

        public Criteria andCreatedIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("created_id >=", value, "createdId");
            return (Criteria) this;
        }

        public Criteria andCreatedIdLessThan(Integer value) {
            addCriterion("created_id <", value, "createdId");
            return (Criteria) this;
        }

        public Criteria andCreatedIdLessThanOrEqualTo(Integer value) {
            addCriterion("created_id <=", value, "createdId");
            return (Criteria) this;
        }

        public Criteria andCreatedIdIn(List<Integer> values) {
            addCriterion("created_id in", values, "createdId");
            return (Criteria) this;
        }

        public Criteria andCreatedIdNotIn(List<Integer> values) {
            addCriterion("created_id not in", values, "createdId");
            return (Criteria) this;
        }

        public Criteria andCreatedIdBetween(Integer value1, Integer value2) {
            addCriterion("created_id between", value1, value2, "createdId");
            return (Criteria) this;
        }

        public Criteria andCreatedIdNotBetween(Integer value1, Integer value2) {
            addCriterion("created_id not between", value1, value2, "createdId");
            return (Criteria) this;
        }

        public Criteria andCreatedAtIsNull() {
            addCriterion("created_at is null");
            return (Criteria) this;
        }

        public Criteria andCreatedAtIsNotNull() {
            addCriterion("created_at is not null");
            return (Criteria) this;
        }

        public Criteria andCreatedAtEqualTo(Date value) {
            addCriterion("created_at =", value, "createdAt");
            return (Criteria) this;
        }

        public Criteria andCreatedAtNotEqualTo(Date value) {
            addCriterion("created_at <>", value, "createdAt");
            return (Criteria) this;
        }

        public Criteria andCreatedAtGreaterThan(Date value) {
            addCriterion("created_at >", value, "createdAt");
            return (Criteria) this;
        }

        public Criteria andCreatedAtGreaterThanOrEqualTo(Date value) {
            addCriterion("created_at >=", value, "createdAt");
            return (Criteria) this;
        }

        public Criteria andCreatedAtLessThan(Date value) {
            addCriterion("created_at <", value, "createdAt");
            return (Criteria) this;
        }

        public Criteria andCreatedAtLessThanOrEqualTo(Date value) {
            addCriterion("created_at <=", value, "createdAt");
            return (Criteria) this;
        }

        public Criteria andCreatedAtIn(List<Date> values) {
            addCriterion("created_at in", values, "createdAt");
            return (Criteria) this;
        }

        public Criteria andCreatedAtNotIn(List<Date> values) {
            addCriterion("created_at not in", values, "createdAt");
            return (Criteria) this;
        }

        public Criteria andCreatedAtBetween(Date value1, Date value2) {
            addCriterion("created_at between", value1, value2, "createdAt");
            return (Criteria) this;
        }

        public Criteria andCreatedAtNotBetween(Date value1, Date value2) {
            addCriterion("created_at not between", value1, value2, "createdAt");
            return (Criteria) this;
        }

        public Criteria andUpdatedIdIsNull() {
            addCriterion("updated_id is null");
            return (Criteria) this;
        }

        public Criteria andUpdatedIdIsNotNull() {
            addCriterion("updated_id is not null");
            return (Criteria) this;
        }

        public Criteria andUpdatedIdEqualTo(Integer value) {
            addCriterion("updated_id =", value, "updatedId");
            return (Criteria) this;
        }

        public Criteria andUpdatedIdNotEqualTo(Integer value) {
            addCriterion("updated_id <>", value, "updatedId");
            return (Criteria) this;
        }

        public Criteria andUpdatedIdGreaterThan(Integer value) {
            addCriterion("updated_id >", value, "updatedId");
            return (Criteria) this;
        }

        public Criteria andUpdatedIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("updated_id >=", value, "updatedId");
            return (Criteria) this;
        }

        public Criteria andUpdatedIdLessThan(Integer value) {
            addCriterion("updated_id <", value, "updatedId");
            return (Criteria) this;
        }

        public Criteria andUpdatedIdLessThanOrEqualTo(Integer value) {
            addCriterion("updated_id <=", value, "updatedId");
            return (Criteria) this;
        }

        public Criteria andUpdatedIdIn(List<Integer> values) {
            addCriterion("updated_id in", values, "updatedId");
            return (Criteria) this;
        }

        public Criteria andUpdatedIdNotIn(List<Integer> values) {
            addCriterion("updated_id not in", values, "updatedId");
            return (Criteria) this;
        }

        public Criteria andUpdatedIdBetween(Integer value1, Integer value2) {
            addCriterion("updated_id between", value1, value2, "updatedId");
            return (Criteria) this;
        }

        public Criteria andUpdatedIdNotBetween(Integer value1, Integer value2) {
            addCriterion("updated_id not between", value1, value2, "updatedId");
            return (Criteria) this;
        }

        public Criteria andUpdatedAtIsNull() {
            addCriterion("updated_at is null");
            return (Criteria) this;
        }

        public Criteria andUpdatedAtIsNotNull() {
            addCriterion("updated_at is not null");
            return (Criteria) this;
        }

        public Criteria andUpdatedAtEqualTo(Date value) {
            addCriterion("updated_at =", value, "updatedAt");
            return (Criteria) this;
        }

        public Criteria andUpdatedAtNotEqualTo(Date value) {
            addCriterion("updated_at <>", value, "updatedAt");
            return (Criteria) this;
        }

        public Criteria andUpdatedAtGreaterThan(Date value) {
            addCriterion("updated_at >", value, "updatedAt");
            return (Criteria) this;
        }

        public Criteria andUpdatedAtGreaterThanOrEqualTo(Date value) {
            addCriterion("updated_at >=", value, "updatedAt");
            return (Criteria) this;
        }

        public Criteria andUpdatedAtLessThan(Date value) {
            addCriterion("updated_at <", value, "updatedAt");
            return (Criteria) this;
        }

        public Criteria andUpdatedAtLessThanOrEqualTo(Date value) {
            addCriterion("updated_at <=", value, "updatedAt");
            return (Criteria) this;
        }

        public Criteria andUpdatedAtIn(List<Date> values) {
            addCriterion("updated_at in", values, "updatedAt");
            return (Criteria) this;
        }

        public Criteria andUpdatedAtNotIn(List<Date> values) {
            addCriterion("updated_at not in", values, "updatedAt");
            return (Criteria) this;
        }

        public Criteria andUpdatedAtBetween(Date value1, Date value2) {
            addCriterion("updated_at between", value1, value2, "updatedAt");
            return (Criteria) this;
        }

        public Criteria andUpdatedAtNotBetween(Date value1, Date value2) {
            addCriterion("updated_at not between", value1, value2, "updatedAt");
            return (Criteria) this;
        }

        public Criteria andQaLeaderIdIsNull() {
            addCriterion("qa_leader_id is null");
            return (Criteria) this;
        }

        public Criteria andQaLeaderIdIsNotNull() {
            addCriterion("qa_leader_id is not null");
            return (Criteria) this;
        }

        public Criteria andQaLeaderIdEqualTo(Integer value) {
            addCriterion("qa_leader_id =", value, "qaLeaderId");
            return (Criteria) this;
        }

        public Criteria andQaLeaderIdNotEqualTo(Integer value) {
            addCriterion("qa_leader_id <>", value, "qaLeaderId");
            return (Criteria) this;
        }

        public Criteria andQaLeaderIdGreaterThan(Integer value) {
            addCriterion("qa_leader_id >", value, "qaLeaderId");
            return (Criteria) this;
        }

        public Criteria andQaLeaderIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("qa_leader_id >=", value, "qaLeaderId");
            return (Criteria) this;
        }

        public Criteria andQaLeaderIdLessThan(Integer value) {
            addCriterion("qa_leader_id <", value, "qaLeaderId");
            return (Criteria) this;
        }

        public Criteria andQaLeaderIdLessThanOrEqualTo(Integer value) {
            addCriterion("qa_leader_id <=", value, "qaLeaderId");
            return (Criteria) this;
        }

        public Criteria andQaLeaderIdIn(List<Integer> values) {
            addCriterion("qa_leader_id in", values, "qaLeaderId");
            return (Criteria) this;
        }

        public Criteria andQaLeaderIdNotIn(List<Integer> values) {
            addCriterion("qa_leader_id not in", values, "qaLeaderId");
            return (Criteria) this;
        }

        public Criteria andQaLeaderIdBetween(Integer value1, Integer value2) {
            addCriterion("qa_leader_id between", value1, value2, "qaLeaderId");
            return (Criteria) this;
        }

        public Criteria andQaLeaderIdNotBetween(Integer value1, Integer value2) {
            addCriterion("qa_leader_id not between", value1, value2, "qaLeaderId");
            return (Criteria) this;
        }

        public Criteria andDevLeaderIdIsNull() {
            addCriterion("dev_leader_id is null");
            return (Criteria) this;
        }

        public Criteria andDevLeaderIdIsNotNull() {
            addCriterion("dev_leader_id is not null");
            return (Criteria) this;
        }

        public Criteria andDevLeaderIdEqualTo(Integer value) {
            addCriterion("dev_leader_id =", value, "devLeaderId");
            return (Criteria) this;
        }

        public Criteria andDevLeaderIdNotEqualTo(Integer value) {
            addCriterion("dev_leader_id <>", value, "devLeaderId");
            return (Criteria) this;
        }

        public Criteria andDevLeaderIdGreaterThan(Integer value) {
            addCriterion("dev_leader_id >", value, "devLeaderId");
            return (Criteria) this;
        }

        public Criteria andDevLeaderIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("dev_leader_id >=", value, "devLeaderId");
            return (Criteria) this;
        }

        public Criteria andDevLeaderIdLessThan(Integer value) {
            addCriterion("dev_leader_id <", value, "devLeaderId");
            return (Criteria) this;
        }

        public Criteria andDevLeaderIdLessThanOrEqualTo(Integer value) {
            addCriterion("dev_leader_id <=", value, "devLeaderId");
            return (Criteria) this;
        }

        public Criteria andDevLeaderIdIn(List<Integer> values) {
            addCriterion("dev_leader_id in", values, "devLeaderId");
            return (Criteria) this;
        }

        public Criteria andDevLeaderIdNotIn(List<Integer> values) {
            addCriterion("dev_leader_id not in", values, "devLeaderId");
            return (Criteria) this;
        }

        public Criteria andDevLeaderIdBetween(Integer value1, Integer value2) {
            addCriterion("dev_leader_id between", value1, value2, "devLeaderId");
            return (Criteria) this;
        }

        public Criteria andDevLeaderIdNotBetween(Integer value1, Integer value2) {
            addCriterion("dev_leader_id not between", value1, value2, "devLeaderId");
            return (Criteria) this;
        }

        public Criteria andTraceDbaNodeIsNull() {
            addCriterion("trace_dba_node is null");
            return (Criteria) this;
        }

        public Criteria andTraceDbaNodeIsNotNull() {
            addCriterion("trace_dba_node is not null");
            return (Criteria) this;
        }

        public Criteria andTraceDbaNodeEqualTo(String value) {
            addCriterion("trace_dba_node =", value, "traceDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbaNodeNotEqualTo(String value) {
            addCriterion("trace_dba_node <>", value, "traceDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbaNodeGreaterThan(String value) {
            addCriterion("trace_dba_node >", value, "traceDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbaNodeGreaterThanOrEqualTo(String value) {
            addCriterion("trace_dba_node >=", value, "traceDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbaNodeLessThan(String value) {
            addCriterion("trace_dba_node <", value, "traceDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbaNodeLessThanOrEqualTo(String value) {
            addCriterion("trace_dba_node <=", value, "traceDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbaNodeLike(String value) {
            addCriterion("trace_dba_node like", value, "traceDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbaNodeNotLike(String value) {
            addCriterion("trace_dba_node not like", value, "traceDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbaNodeIn(List<String> values) {
            addCriterion("trace_dba_node in", values, "traceDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbaNodeNotIn(List<String> values) {
            addCriterion("trace_dba_node not in", values, "traceDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbaNodeBetween(String value1, String value2) {
            addCriterion("trace_dba_node between", value1, value2, "traceDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbaNodeNotBetween(String value1, String value2) {
            addCriterion("trace_dba_node not between", value1, value2, "traceDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceOpsNodeIsNull() {
            addCriterion("trace_ops_node is null");
            return (Criteria) this;
        }

        public Criteria andTraceOpsNodeIsNotNull() {
            addCriterion("trace_ops_node is not null");
            return (Criteria) this;
        }

        public Criteria andTraceOpsNodeEqualTo(String value) {
            addCriterion("trace_ops_node =", value, "traceOpsNode");
            return (Criteria) this;
        }

        public Criteria andTraceOpsNodeNotEqualTo(String value) {
            addCriterion("trace_ops_node <>", value, "traceOpsNode");
            return (Criteria) this;
        }

        public Criteria andTraceOpsNodeGreaterThan(String value) {
            addCriterion("trace_ops_node >", value, "traceOpsNode");
            return (Criteria) this;
        }

        public Criteria andTraceOpsNodeGreaterThanOrEqualTo(String value) {
            addCriterion("trace_ops_node >=", value, "traceOpsNode");
            return (Criteria) this;
        }

        public Criteria andTraceOpsNodeLessThan(String value) {
            addCriterion("trace_ops_node <", value, "traceOpsNode");
            return (Criteria) this;
        }

        public Criteria andTraceOpsNodeLessThanOrEqualTo(String value) {
            addCriterion("trace_ops_node <=", value, "traceOpsNode");
            return (Criteria) this;
        }

        public Criteria andTraceOpsNodeLike(String value) {
            addCriterion("trace_ops_node like", value, "traceOpsNode");
            return (Criteria) this;
        }

        public Criteria andTraceOpsNodeNotLike(String value) {
            addCriterion("trace_ops_node not like", value, "traceOpsNode");
            return (Criteria) this;
        }

        public Criteria andTraceOpsNodeIn(List<String> values) {
            addCriterion("trace_ops_node in", values, "traceOpsNode");
            return (Criteria) this;
        }

        public Criteria andTraceOpsNodeNotIn(List<String> values) {
            addCriterion("trace_ops_node not in", values, "traceOpsNode");
            return (Criteria) this;
        }

        public Criteria andTraceOpsNodeBetween(String value1, String value2) {
            addCriterion("trace_ops_node between", value1, value2, "traceOpsNode");
            return (Criteria) this;
        }

        public Criteria andTraceOpsNodeNotBetween(String value1, String value2) {
            addCriterion("trace_ops_node not between", value1, value2, "traceOpsNode");
            return (Criteria) this;
        }

        public Criteria andTraceRollbackNodeIsNull() {
            addCriterion("trace_rollback_node is null");
            return (Criteria) this;
        }

        public Criteria andTraceRollbackNodeIsNotNull() {
            addCriterion("trace_rollback_node is not null");
            return (Criteria) this;
        }

        public Criteria andTraceRollbackNodeEqualTo(String value) {
            addCriterion("trace_rollback_node =", value, "traceRollbackNode");
            return (Criteria) this;
        }

        public Criteria andTraceRollbackNodeNotEqualTo(String value) {
            addCriterion("trace_rollback_node <>", value, "traceRollbackNode");
            return (Criteria) this;
        }

        public Criteria andTraceRollbackNodeGreaterThan(String value) {
            addCriterion("trace_rollback_node >", value, "traceRollbackNode");
            return (Criteria) this;
        }

        public Criteria andTraceRollbackNodeGreaterThanOrEqualTo(String value) {
            addCriterion("trace_rollback_node >=", value, "traceRollbackNode");
            return (Criteria) this;
        }

        public Criteria andTraceRollbackNodeLessThan(String value) {
            addCriterion("trace_rollback_node <", value, "traceRollbackNode");
            return (Criteria) this;
        }

        public Criteria andTraceRollbackNodeLessThanOrEqualTo(String value) {
            addCriterion("trace_rollback_node <=", value, "traceRollbackNode");
            return (Criteria) this;
        }

        public Criteria andTraceRollbackNodeLike(String value) {
            addCriterion("trace_rollback_node like", value, "traceRollbackNode");
            return (Criteria) this;
        }

        public Criteria andTraceRollbackNodeNotLike(String value) {
            addCriterion("trace_rollback_node not like", value, "traceRollbackNode");
            return (Criteria) this;
        }

        public Criteria andTraceRollbackNodeIn(List<String> values) {
            addCriterion("trace_rollback_node in", values, "traceRollbackNode");
            return (Criteria) this;
        }

        public Criteria andTraceRollbackNodeNotIn(List<String> values) {
            addCriterion("trace_rollback_node not in", values, "traceRollbackNode");
            return (Criteria) this;
        }

        public Criteria andTraceRollbackNodeBetween(String value1, String value2) {
            addCriterion("trace_rollback_node between", value1, value2, "traceRollbackNode");
            return (Criteria) this;
        }

        public Criteria andTraceRollbackNodeNotBetween(String value1, String value2) {
            addCriterion("trace_rollback_node not between", value1, value2, "traceRollbackNode");
            return (Criteria) this;
        }

        public Criteria andReleaseScheduleTemplateIdIsNull() {
            addCriterion("release_schedule_template_id is null");
            return (Criteria) this;
        }

        public Criteria andReleaseScheduleTemplateIdIsNotNull() {
            addCriterion("release_schedule_template_id is not null");
            return (Criteria) this;
        }

        public Criteria andReleaseScheduleTemplateIdEqualTo(Integer value) {
            addCriterion("release_schedule_template_id =", value, "releaseScheduleTemplateId");
            return (Criteria) this;
        }

        public Criteria andReleaseScheduleTemplateIdNotEqualTo(Integer value) {
            addCriterion("release_schedule_template_id <>", value, "releaseScheduleTemplateId");
            return (Criteria) this;
        }

        public Criteria andReleaseScheduleTemplateIdGreaterThan(Integer value) {
            addCriterion("release_schedule_template_id >", value, "releaseScheduleTemplateId");
            return (Criteria) this;
        }

        public Criteria andReleaseScheduleTemplateIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("release_schedule_template_id >=", value, "releaseScheduleTemplateId");
            return (Criteria) this;
        }

        public Criteria andReleaseScheduleTemplateIdLessThan(Integer value) {
            addCriterion("release_schedule_template_id <", value, "releaseScheduleTemplateId");
            return (Criteria) this;
        }

        public Criteria andReleaseScheduleTemplateIdLessThanOrEqualTo(Integer value) {
            addCriterion("release_schedule_template_id <=", value, "releaseScheduleTemplateId");
            return (Criteria) this;
        }

        public Criteria andReleaseScheduleTemplateIdIn(List<Integer> values) {
            addCriterion("release_schedule_template_id in", values, "releaseScheduleTemplateId");
            return (Criteria) this;
        }

        public Criteria andReleaseScheduleTemplateIdNotIn(List<Integer> values) {
            addCriterion("release_schedule_template_id not in", values, "releaseScheduleTemplateId");
            return (Criteria) this;
        }

        public Criteria andReleaseScheduleTemplateIdBetween(Integer value1, Integer value2) {
            addCriterion("release_schedule_template_id between", value1, value2, "releaseScheduleTemplateId");
            return (Criteria) this;
        }

        public Criteria andReleaseScheduleTemplateIdNotBetween(Integer value1, Integer value2) {
            addCriterion("release_schedule_template_id not between", value1, value2, "releaseScheduleTemplateId");
            return (Criteria) this;
        }

        public Criteria andEnablePushJiraIsNull() {
            addCriterion("enable_push_jira is null");
            return (Criteria) this;
        }

        public Criteria andEnablePushJiraIsNotNull() {
            addCriterion("enable_push_jira is not null");
            return (Criteria) this;
        }

        public Criteria andEnablePushJiraEqualTo(Boolean value) {
            addCriterion("enable_push_jira =", value, "enablePushJira");
            return (Criteria) this;
        }

        public Criteria andEnablePushJiraNotEqualTo(Boolean value) {
            addCriterion("enable_push_jira <>", value, "enablePushJira");
            return (Criteria) this;
        }

        public Criteria andEnablePushJiraGreaterThan(Boolean value) {
            addCriterion("enable_push_jira >", value, "enablePushJira");
            return (Criteria) this;
        }

        public Criteria andEnablePushJiraGreaterThanOrEqualTo(Boolean value) {
            addCriterion("enable_push_jira >=", value, "enablePushJira");
            return (Criteria) this;
        }

        public Criteria andEnablePushJiraLessThan(Boolean value) {
            addCriterion("enable_push_jira <", value, "enablePushJira");
            return (Criteria) this;
        }

        public Criteria andEnablePushJiraLessThanOrEqualTo(Boolean value) {
            addCriterion("enable_push_jira <=", value, "enablePushJira");
            return (Criteria) this;
        }

        public Criteria andEnablePushJiraIn(List<Boolean> values) {
            addCriterion("enable_push_jira in", values, "enablePushJira");
            return (Criteria) this;
        }

        public Criteria andEnablePushJiraNotIn(List<Boolean> values) {
            addCriterion("enable_push_jira not in", values, "enablePushJira");
            return (Criteria) this;
        }

        public Criteria andEnablePushJiraBetween(Boolean value1, Boolean value2) {
            addCriterion("enable_push_jira between", value1, value2, "enablePushJira");
            return (Criteria) this;
        }

        public Criteria andEnablePushJiraNotBetween(Boolean value1, Boolean value2) {
            addCriterion("enable_push_jira not between", value1, value2, "enablePushJira");
            return (Criteria) this;
        }

        public Criteria andTemplateStatusIsNull() {
            addCriterion("template_status is null");
            return (Criteria) this;
        }

        public Criteria andTemplateStatusIsNotNull() {
            addCriterion("template_status is not null");
            return (Criteria) this;
        }

        public Criteria andTemplateStatusEqualTo(Byte value) {
            addCriterion("template_status =", value, "templateStatus");
            return (Criteria) this;
        }

        public Criteria andTemplateStatusNotEqualTo(Byte value) {
            addCriterion("template_status <>", value, "templateStatus");
            return (Criteria) this;
        }

        public Criteria andTemplateStatusGreaterThan(Byte value) {
            addCriterion("template_status >", value, "templateStatus");
            return (Criteria) this;
        }

        public Criteria andTemplateStatusGreaterThanOrEqualTo(Byte value) {
            addCriterion("template_status >=", value, "templateStatus");
            return (Criteria) this;
        }

        public Criteria andTemplateStatusLessThan(Byte value) {
            addCriterion("template_status <", value, "templateStatus");
            return (Criteria) this;
        }

        public Criteria andTemplateStatusLessThanOrEqualTo(Byte value) {
            addCriterion("template_status <=", value, "templateStatus");
            return (Criteria) this;
        }

        public Criteria andTemplateStatusIn(List<Byte> values) {
            addCriterion("template_status in", values, "templateStatus");
            return (Criteria) this;
        }

        public Criteria andTemplateStatusNotIn(List<Byte> values) {
            addCriterion("template_status not in", values, "templateStatus");
            return (Criteria) this;
        }

        public Criteria andTemplateStatusBetween(Byte value1, Byte value2) {
            addCriterion("template_status between", value1, value2, "templateStatus");
            return (Criteria) this;
        }

        public Criteria andTemplateStatusNotBetween(Byte value1, Byte value2) {
            addCriterion("template_status not between", value1, value2, "templateStatus");
            return (Criteria) this;
        }

        public Criteria andGitNamespaceIdIsNull() {
            addCriterion("git_namespace_id is null");
            return (Criteria) this;
        }

        public Criteria andGitNamespaceIdIsNotNull() {
            addCriterion("git_namespace_id is not null");
            return (Criteria) this;
        }

        public Criteria andGitNamespaceIdEqualTo(Integer value) {
            addCriterion("git_namespace_id =", value, "gitNamespaceId");
            return (Criteria) this;
        }

        public Criteria andGitNamespaceIdNotEqualTo(Integer value) {
            addCriterion("git_namespace_id <>", value, "gitNamespaceId");
            return (Criteria) this;
        }

        public Criteria andGitNamespaceIdGreaterThan(Integer value) {
            addCriterion("git_namespace_id >", value, "gitNamespaceId");
            return (Criteria) this;
        }

        public Criteria andGitNamespaceIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("git_namespace_id >=", value, "gitNamespaceId");
            return (Criteria) this;
        }

        public Criteria andGitNamespaceIdLessThan(Integer value) {
            addCriterion("git_namespace_id <", value, "gitNamespaceId");
            return (Criteria) this;
        }

        public Criteria andGitNamespaceIdLessThanOrEqualTo(Integer value) {
            addCriterion("git_namespace_id <=", value, "gitNamespaceId");
            return (Criteria) this;
        }

        public Criteria andGitNamespaceIdIn(List<Integer> values) {
            addCriterion("git_namespace_id in", values, "gitNamespaceId");
            return (Criteria) this;
        }

        public Criteria andGitNamespaceIdNotIn(List<Integer> values) {
            addCriterion("git_namespace_id not in", values, "gitNamespaceId");
            return (Criteria) this;
        }

        public Criteria andGitNamespaceIdBetween(Integer value1, Integer value2) {
            addCriterion("git_namespace_id between", value1, value2, "gitNamespaceId");
            return (Criteria) this;
        }

        public Criteria andGitNamespaceIdNotBetween(Integer value1, Integer value2) {
            addCriterion("git_namespace_id not between", value1, value2, "gitNamespaceId");
            return (Criteria) this;
        }

        public Criteria andPmLeaderIdIsNull() {
            addCriterion("pm_leader_id is null");
            return (Criteria) this;
        }

        public Criteria andPmLeaderIdIsNotNull() {
            addCriterion("pm_leader_id is not null");
            return (Criteria) this;
        }

        public Criteria andPmLeaderIdEqualTo(Integer value) {
            addCriterion("pm_leader_id =", value, "pmLeaderId");
            return (Criteria) this;
        }

        public Criteria andPmLeaderIdNotEqualTo(Integer value) {
            addCriterion("pm_leader_id <>", value, "pmLeaderId");
            return (Criteria) this;
        }

        public Criteria andPmLeaderIdGreaterThan(Integer value) {
            addCriterion("pm_leader_id >", value, "pmLeaderId");
            return (Criteria) this;
        }

        public Criteria andPmLeaderIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("pm_leader_id >=", value, "pmLeaderId");
            return (Criteria) this;
        }

        public Criteria andPmLeaderIdLessThan(Integer value) {
            addCriterion("pm_leader_id <", value, "pmLeaderId");
            return (Criteria) this;
        }

        public Criteria andPmLeaderIdLessThanOrEqualTo(Integer value) {
            addCriterion("pm_leader_id <=", value, "pmLeaderId");
            return (Criteria) this;
        }

        public Criteria andPmLeaderIdIn(List<Integer> values) {
            addCriterion("pm_leader_id in", values, "pmLeaderId");
            return (Criteria) this;
        }

        public Criteria andPmLeaderIdNotIn(List<Integer> values) {
            addCriterion("pm_leader_id not in", values, "pmLeaderId");
            return (Criteria) this;
        }

        public Criteria andPmLeaderIdBetween(Integer value1, Integer value2) {
            addCriterion("pm_leader_id between", value1, value2, "pmLeaderId");
            return (Criteria) this;
        }

        public Criteria andPmLeaderIdNotBetween(Integer value1, Integer value2) {
            addCriterion("pm_leader_id not between", value1, value2, "pmLeaderId");
            return (Criteria) this;
        }

        public Criteria andTraceDbNodeIsNull() {
            addCriterion("trace_db_node is null");
            return (Criteria) this;
        }

        public Criteria andTraceDbNodeIsNotNull() {
            addCriterion("trace_db_node is not null");
            return (Criteria) this;
        }

        public Criteria andTraceDbNodeEqualTo(String value) {
            addCriterion("trace_db_node =", value, "traceDbNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbNodeNotEqualTo(String value) {
            addCriterion("trace_db_node <>", value, "traceDbNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbNodeGreaterThan(String value) {
            addCriterion("trace_db_node >", value, "traceDbNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbNodeGreaterThanOrEqualTo(String value) {
            addCriterion("trace_db_node >=", value, "traceDbNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbNodeLessThan(String value) {
            addCriterion("trace_db_node <", value, "traceDbNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbNodeLessThanOrEqualTo(String value) {
            addCriterion("trace_db_node <=", value, "traceDbNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbNodeLike(String value) {
            addCriterion("trace_db_node like", value, "traceDbNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbNodeNotLike(String value) {
            addCriterion("trace_db_node not like", value, "traceDbNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbNodeIn(List<String> values) {
            addCriterion("trace_db_node in", values, "traceDbNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbNodeNotIn(List<String> values) {
            addCriterion("trace_db_node not in", values, "traceDbNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbNodeBetween(String value1, String value2) {
            addCriterion("trace_db_node between", value1, value2, "traceDbNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbNodeNotBetween(String value1, String value2) {
            addCriterion("trace_db_node not between", value1, value2, "traceDbNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbDbaNodeIsNull() {
            addCriterion("trace_db_dba_node is null");
            return (Criteria) this;
        }

        public Criteria andTraceDbDbaNodeIsNotNull() {
            addCriterion("trace_db_dba_node is not null");
            return (Criteria) this;
        }

        public Criteria andTraceDbDbaNodeEqualTo(String value) {
            addCriterion("trace_db_dba_node =", value, "traceDbDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbDbaNodeNotEqualTo(String value) {
            addCriterion("trace_db_dba_node <>", value, "traceDbDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbDbaNodeGreaterThan(String value) {
            addCriterion("trace_db_dba_node >", value, "traceDbDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbDbaNodeGreaterThanOrEqualTo(String value) {
            addCriterion("trace_db_dba_node >=", value, "traceDbDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbDbaNodeLessThan(String value) {
            addCriterion("trace_db_dba_node <", value, "traceDbDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbDbaNodeLessThanOrEqualTo(String value) {
            addCriterion("trace_db_dba_node <=", value, "traceDbDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbDbaNodeLike(String value) {
            addCriterion("trace_db_dba_node like", value, "traceDbDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbDbaNodeNotLike(String value) {
            addCriterion("trace_db_dba_node not like", value, "traceDbDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbDbaNodeIn(List<String> values) {
            addCriterion("trace_db_dba_node in", values, "traceDbDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbDbaNodeNotIn(List<String> values) {
            addCriterion("trace_db_dba_node not in", values, "traceDbDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbDbaNodeBetween(String value1, String value2) {
            addCriterion("trace_db_dba_node between", value1, value2, "traceDbDbaNode");
            return (Criteria) this;
        }

        public Criteria andTraceDbDbaNodeNotBetween(String value1, String value2) {
            addCriterion("trace_db_dba_node not between", value1, value2, "traceDbDbaNode");
            return (Criteria) this;
        }

        public Criteria andIsShowIsNull() {
            addCriterion("is_show is null");
            return (Criteria) this;
        }

        public Criteria andIsShowIsNotNull() {
            addCriterion("is_show is not null");
            return (Criteria) this;
        }

        public Criteria andIsShowEqualTo(Integer value) {
            addCriterion("is_show =", value, "isShow");
            return (Criteria) this;
        }

        public Criteria andIsShowNotEqualTo(Integer value) {
            addCriterion("is_show <>", value, "isShow");
            return (Criteria) this;
        }

        public Criteria andIsShowGreaterThan(Integer value) {
            addCriterion("is_show >", value, "isShow");
            return (Criteria) this;
        }

        public Criteria andIsShowGreaterThanOrEqualTo(Integer value) {
            addCriterion("is_show >=", value, "isShow");
            return (Criteria) this;
        }

        public Criteria andIsShowLessThan(Integer value) {
            addCriterion("is_show <", value, "isShow");
            return (Criteria) this;
        }

        public Criteria andIsShowLessThanOrEqualTo(Integer value) {
            addCriterion("is_show <=", value, "isShow");
            return (Criteria) this;
        }

        public Criteria andIsShowIn(List<Integer> values) {
            addCriterion("is_show in", values, "isShow");
            return (Criteria) this;
        }

        public Criteria andIsShowNotIn(List<Integer> values) {
            addCriterion("is_show not in", values, "isShow");
            return (Criteria) this;
        }

        public Criteria andIsShowBetween(Integer value1, Integer value2) {
            addCriterion("is_show between", value1, value2, "isShow");
            return (Criteria) this;
        }

        public Criteria andIsShowNotBetween(Integer value1, Integer value2) {
            addCriterion("is_show not between", value1, value2, "isShow");
            return (Criteria) this;
        }

        public Criteria andProductAdminIdIsNull() {
            addCriterion("product_admin_id is null");
            return (Criteria) this;
        }

        public Criteria andProductAdminIdIsNotNull() {
            addCriterion("product_admin_id is not null");
            return (Criteria) this;
        }

        public Criteria andProductAdminIdEqualTo(Integer value) {
            addCriterion("product_admin_id =", value, "productAdminId");
            return (Criteria) this;
        }

        public Criteria andProductAdminIdNotEqualTo(Integer value) {
            addCriterion("product_admin_id <>", value, "productAdminId");
            return (Criteria) this;
        }

        public Criteria andProductAdminIdGreaterThan(Integer value) {
            addCriterion("product_admin_id >", value, "productAdminId");
            return (Criteria) this;
        }

        public Criteria andProductAdminIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("product_admin_id >=", value, "productAdminId");
            return (Criteria) this;
        }

        public Criteria andProductAdminIdLessThan(Integer value) {
            addCriterion("product_admin_id <", value, "productAdminId");
            return (Criteria) this;
        }

        public Criteria andProductAdminIdLessThanOrEqualTo(Integer value) {
            addCriterion("product_admin_id <=", value, "productAdminId");
            return (Criteria) this;
        }

        public Criteria andProductAdminIdIn(List<Integer> values) {
            addCriterion("product_admin_id in", values, "productAdminId");
            return (Criteria) this;
        }

        public Criteria andProductAdminIdNotIn(List<Integer> values) {
            addCriterion("product_admin_id not in", values, "productAdminId");
            return (Criteria) this;
        }

        public Criteria andProductAdminIdBetween(Integer value1, Integer value2) {
            addCriterion("product_admin_id between", value1, value2, "productAdminId");
            return (Criteria) this;
        }

        public Criteria andProductAdminIdNotBetween(Integer value1, Integer value2) {
            addCriterion("product_admin_id not between", value1, value2, "productAdminId");
            return (Criteria) this;
        }

        public Criteria andProductAgentIdIsNull() {
            addCriterion("product_agent_id is null");
            return (Criteria) this;
        }

        public Criteria andProductAgentIdIsNotNull() {
            addCriterion("product_agent_id is not null");
            return (Criteria) this;
        }

        public Criteria andProductAgentIdEqualTo(Integer value) {
            addCriterion("product_agent_id =", value, "productAgentId");
            return (Criteria) this;
        }

        public Criteria andProductAgentIdNotEqualTo(Integer value) {
            addCriterion("product_agent_id <>", value, "productAgentId");
            return (Criteria) this;
        }

        public Criteria andProductAgentIdGreaterThan(Integer value) {
            addCriterion("product_agent_id >", value, "productAgentId");
            return (Criteria) this;
        }

        public Criteria andProductAgentIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("product_agent_id >=", value, "productAgentId");
            return (Criteria) this;
        }

        public Criteria andProductAgentIdLessThan(Integer value) {
            addCriterion("product_agent_id <", value, "productAgentId");
            return (Criteria) this;
        }

        public Criteria andProductAgentIdLessThanOrEqualTo(Integer value) {
            addCriterion("product_agent_id <=", value, "productAgentId");
            return (Criteria) this;
        }

        public Criteria andProductAgentIdIn(List<Integer> values) {
            addCriterion("product_agent_id in", values, "productAgentId");
            return (Criteria) this;
        }

        public Criteria andProductAgentIdNotIn(List<Integer> values) {
            addCriterion("product_agent_id not in", values, "productAgentId");
            return (Criteria) this;
        }

        public Criteria andProductAgentIdBetween(Integer value1, Integer value2) {
            addCriterion("product_agent_id between", value1, value2, "productAgentId");
            return (Criteria) this;
        }

        public Criteria andProductAgentIdNotBetween(Integer value1, Integer value2) {
            addCriterion("product_agent_id not between", value1, value2, "productAgentId");
            return (Criteria) this;
        }

        public Criteria andProductImageUrlIsNull() {
            addCriterion("product_image_url is null");
            return (Criteria) this;
        }

        public Criteria andProductImageUrlIsNotNull() {
            addCriterion("product_image_url is not null");
            return (Criteria) this;
        }

        public Criteria andProductImageUrlEqualTo(String value) {
            addCriterion("product_image_url =", value, "productImageUrl");
            return (Criteria) this;
        }

        public Criteria andProductImageUrlNotEqualTo(String value) {
            addCriterion("product_image_url <>", value, "productImageUrl");
            return (Criteria) this;
        }

        public Criteria andProductImageUrlGreaterThan(String value) {
            addCriterion("product_image_url >", value, "productImageUrl");
            return (Criteria) this;
        }

        public Criteria andProductImageUrlGreaterThanOrEqualTo(String value) {
            addCriterion("product_image_url >=", value, "productImageUrl");
            return (Criteria) this;
        }

        public Criteria andProductImageUrlLessThan(String value) {
            addCriterion("product_image_url <", value, "productImageUrl");
            return (Criteria) this;
        }

        public Criteria andProductImageUrlLessThanOrEqualTo(String value) {
            addCriterion("product_image_url <=", value, "productImageUrl");
            return (Criteria) this;
        }

        public Criteria andProductImageUrlLike(String value) {
            addCriterion("product_image_url like", value, "productImageUrl");
            return (Criteria) this;
        }

        public Criteria andProductImageUrlNotLike(String value) {
            addCriterion("product_image_url not like", value, "productImageUrl");
            return (Criteria) this;
        }

        public Criteria andProductImageUrlIn(List<String> values) {
            addCriterion("product_image_url in", values, "productImageUrl");
            return (Criteria) this;
        }

        public Criteria andProductImageUrlNotIn(List<String> values) {
            addCriterion("product_image_url not in", values, "productImageUrl");
            return (Criteria) this;
        }

        public Criteria andProductImageUrlBetween(String value1, String value2) {
            addCriterion("product_image_url between", value1, value2, "productImageUrl");
            return (Criteria) this;
        }

        public Criteria andProductImageUrlNotBetween(String value1, String value2) {
            addCriterion("product_image_url not between", value1, value2, "productImageUrl");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}